package com.wuxinwudai.android.beans;


import org.json.JSONException;
import org.json.JSONObject;


/**
 * JsonRequestResult 类用于返回已写好的.net json 接口数据
 * @author 吾心无待 于 2016年6月22日
 */
public class JsonRequestResult {
    protected JSONObject source;//JSONObject 来源
    private String message;//返回的消息
    private String statusCode;//消息状态码，约定接口调用成功时状态码始终为 0
    private long time;//服务器返回时间
    private boolean isOk;//获取接口调用是否成功

    /**
     * 获取响应的消息
     * @return 返回响应消息
     */
    public String getMessage() {
        return message;
    }

    /**
     * 设置响应的消息
     * @param message 响应的消息
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * 获取消息状态码
     * @return 返回消息状态码
     */
    public String getStatusCode() {
        return statusCode;
    }

    /**
     * 判断接口调用是否成功
     * @return 返回接口调用是否成功
     */
    public boolean isOk() {
        return isOk;
    }

    /**
     * 获取服务器返回时间
     * @return 服务器返回时间
     */
    public long getTime(){
        return time;
    }
    //设置服务器调用返回时间
    protected void setTime(long time){
        this.time = time;
    }
    protected JSONObject getSource(){
        return source;
    }
    protected void setSource(JSONObject obj){
        this.source = obj;
    }
    protected JsonRequestResult(){}
    protected void setStatusCode(String statusCode){
        this.statusCode = statusCode;
    }
    protected void  setOk(boolean isOk){
        this.isOk = isOk;
    }

//    /**
//     * 获取接口调用成功的 JsonRequestResult 实例
//     * @param message 消息
//     * @return 返回接口调用成功时的 JsonRequestResult 对象
//     */
//    public static JsonRequestResult getSuccess(String message){
//        JsonRequestResult jrr = new JsonRequestResult();
//        jrr.setMessage(message);
//        jrr.setOk(true);
//        jrr.setStatusCode("0");
//        return jrr;
//    }
//
//    /**
//     * 获取接口调用失败返回的 JsonRequestResult 实例
//     * @param statusCode 状态码
//     * @param message 消息
//     * @return 返回接口调用失败时返回的 JsonRequestResult 实例
//     */
//    public static JsonRequestResult getFailed(String statusCode,String message){
//        JsonRequestResult jrr = new JsonRequestResult();
//        jrr.setMessage(message);
//        jrr.setOk(true);
//        jrr.setStatusCode(statusCode);
//        return jrr;
//    }

    /**
     * 从 JSONObject 对象生产 JSONRequestResult 对象
     * @param obj JSONObject 对象
     * @return 返回 JsonRequestResult 对象
     * @throws JSONException
     */
    public static JsonRequestResult from(JSONObject obj) throws JSONException{
        JsonRequestResult jrr = new JsonRequestResult();
        jrr.setMessage(obj.getString("message"));
        jrr.setOk(obj.getBoolean("ok"));
        jrr.setStatusCode(obj.getString("statusCode"));
        jrr.setSource(obj);
        jrr.setTime(obj.getLong("time"));
        return jrr;
    }
}
